//
// Created by wxd on 2025/8/3.
// 引擎帧率管理器, 单例创建
//

#pragma once

#ifndef ENGINE_FRAMEMANAGER_H
#define ENGINE_FRAMEMANAGER_H

#include <memory>
#include "FrameCounter.h"

class FrameManager {
public:
    FrameManager() {}
    FrameManager(const FrameManager&) = delete;
    FrameManager& operator=(const FrameManager&) = delete;
    ~FrameManager() = default;

    static FrameManager& getInstance();
    static void destroyFrameManager();

    // 建议使用
    void setFrameCounter(std::unique_ptr<FrameCounter> frameCounter);

    void updateFrameCounter() const;

    static void clear();

private:

    static std::unique_ptr<FrameManager> m_Instance;

    std::unique_ptr<FrameCounter> m_FrameCounter;
};
#endif //FRAMEMANAGER_H
